1. Field of the Invention
The invention is in the fields of data storage and data protection, and more particularly concerns methods for migrating data from one storage unit to another on a system, while the system remains substantially available for read and write operations.
2. Description of the Related Art
Data processing systems rely on increasingly large data stores and data storage devices. Databases and email servers, among others, are good examples of such systems. From time-to-time, it is necessary to replace a storage device on such systems, for example, because the device is beginning to generate errors, is growing obsolete, is too slow, is too small, or for some other reason. The process for switching out an old storage device for a new one is often referred to as “disk migration”. A problem with disk migration as currently practiced is that it often entails a substantial period of down time (many hours for large storage devices) in order to copy the data being migrated. In high-availability systems, such down time may be highly inconvenient or entirely unacceptable.
Conventionally, data is migrated from a data storage device to a replacement device by shutting down the system in question (e.g., database or email server), copying the data on the old device to the replacement device, attaching the replacement device to the system in place of the original device, and restarting the system. In such a procedure, the server cannot simply be left running while the copy is being made, because at some point in the copying procedure, the server may change data that has already been copied, thereby resulting in divergence between the data on the original and replacement storage devices. Conventionally, therefore, copying a volume while it is in use in production is likely to result in corrupted data.
Accordingly, in a conventional migration process, the server must be stopped, and therefore unavailable, the entire time that the data is being migrated. With large storage devices, such an operation may take hours, resulting in substantial downtime.
RAID storage provides limited relief from having to go offline in order to replace a storage device, but the migration must in that case be to a storage device that will function compatibly as part of the RAID array, greatly limiting migration options if downtime must be avoided. RAID is therefore more properly viewed as a safeguard against component failure, rather than as a migration solution.
Migration downtime could also be avoided in an environment that provided continuous mirroring, but such an approach would be prohibitively expensive in most typical applications.
Recent Storage Area Network (SAN) systems, such as those from NetApp®, sometimes provide the ability to “clone” a running storage device to a virtual drive. While this can provide a temporary way to migrate off of a device, it is not generally a long-term solution because of the performance and other limitations of virtual storage. In most cases, a temporary migration performed by cloning will eventually have to be re-migrated to nonvirtual storage, again raising the original issue of down time. While this can help shift the down time period to a more operationally acceptable time period, the cloning approach may not solve the problem in the case of high-availability systems that cannot accommodate the eventual down time necessitated by such a procedure. Similarly, IBM® provides a SAN Volume Controller (SVC) product, which can be used to reallocate storage. However, when used in this manner, the SVC hardware must remain attached to the target system, which is a substantial cost and operational disadvantage.
Storage devices and facilities are often aggregated or otherwise managed by Logical Volume Managers, and/or subdivided by partitioning and other methods. Accordingly, references herein to “storage units”, “storage devices”, “disks”, or “volumes” should be understood to encompass logical volumes, partitions, remotely-mounted drives, storage arrays, virtual drives, loopback devices and the like, as well as other physical types of storage, such as solid state and any other devices capable of storing data. The term “storage unit” will be used herein as a general reference to any such storage device or arrangement.